The present disclosure relates to computing systems that provide redundant computing domains. More particularly, in a computing system comprising multiple computing domains, techniques are provided for intentionally biasing the race to gain mastership between competing computing domains in favor of a particular computer domain.
In an effort to reduce downtime and increase availability, computing systems often provide redundant computing domains. In a typical configuration, during normal operations, one of the computing domains is configured to operate in an active mode and perform a set of functions of the computing system while the other computing domain is configured to operate in standby (or passive) mode in which the set of functions performed by the active computing domain are not performed. The standby computing domain remains ready to take over the functions performed by the active computing domain, and in the process become the active computing domain, in case of any event affecting the functionality of the current active computing domain. The process of a standby computing domain becoming the active computing domain is referred to as a failover. As a result of the failover, the computing domain operating in active mode prior to the failover may operate in standby mode as a result of the failover.
The active-standby model mentioned above is used in various fields to provide enhanced system availability. For example, in the networking field, redundancies are provided at various levels to achieve high availability and minimize data loss. For example, in some network environments, redundant network devices are provided with one network device operating in active mode (the active network device) and the other operating in standby (or passive) mode (the standby network device). The active network device performs the data forwarding-related functions while the standby network device operates in standby mode. Upon a failover, which may occur, for example, due to an error on the active device, the standby device becomes the active device and takes over data forwarding functionality from the previously active device. The previously active device may then operate in standby mode. The active-standby model using two network devices strives to reduce interruptions in data forwarding.
Redundancies may also be provided within a network device. For example, a network device may comprise multiple cards (e.g., multiple management cards, multiple line cards), each card having its own one or more physical processors. One card may be configured to operate in active mode while the other operates in standby mode. The active card performs the data forwarding and/or management related functions while the redundant second card operates in standby mode. Upon a failover, the standby card becomes the active card and starts performing the functions performed in active mode. The previous active card may then operate in standby mode.
The active-standby model may also be provided for in a system comprising a single multicore processor. For example, as described in U.S. Pat. No. 8,495,418, two partitions may be created in such a system with each partition being allocated one or more cores of the multiple cores of the processor. The partitions may be configured such that one partition operates in active mode while another operates in standby mode. In this manner, a single processor is able to provide active-standby functionality, thereby enhancing the availability of the system comprising the processor.
In a system comprising multiple computing domains configured to operate according to the active-standby model, when the system is power cycled, the multiple computing domains are booted and then compete with each other to become the active computing domain. This competition between the computing domains to become the active computing domain is commonly referred to as the race to gain mastership. Only one computing domain “wins” this race to gain mastership and becomes the active computing domain. The other “losing” computing domain becomes the standby computing domain. In conventional systems, which of the multiple computing domains becomes active is arbitrary.